As the technological capacity for organizations to create, track, and retain data continues to grow, a variety of different technologies for managing the rising tide of information have been developed. Database and other data store technologies, for example, have implemented support for querying languages and protocols that allow users to search for and modify data stored in a large data set by submitting queries. Because the amount of data access by queries is growing, minimizing the amount of time and other resources consumed to perform queries is increasingly important.
Planning the performance of a query is often implemented in order to select the most cost efficient way to perform the query. The cost to perform different operations for the query may be estimated so that different operations or configurations of operations may be selected to provide the optimal query plan. Techniques that improve the cost estimation of different operations can improve the accuracy of query planning and thus are desirable.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the present invention. The first contact and the second contact are both contacts, but they are not the same contact.